#include <STC15F2K60S2.H>
#include "smg.h"
#include "DS18B20.h"
#include "OneWire.h"
#include "Timer.h"

unsigned char ack;
float Temp;
float Temperature_Max = 26.0f;
float Temperature_Min = 10.0f;
unsigned char buzzer_flag;

void main()
{
	All_Init();	
	ack = OneWire_Init();
	
	DS18B20_ConvertT();	//先转换1次，
	Delay_ms(1000);		//再延时1s，就不会显示默认温度25了
	
	Timer0_Init();
	
	while(1)
	{
		DS18B20_ConvertT();
		Temp =  DS18B20_ReadT();	//float类型 - 读取到的温度
		
		SMG_ShowFloatNum(Temp);
		
		/* 蜂鸣器 */	// 蜂鸣器引脚翻转
		if (Temp > Temperature_Max || Temp < Temperature_Min)
		{
			//buzzer on  // 使能蜂鸣器
			//选中Y5C - 给P06高电平
			P2 = 0xA0;	// 1010 0000 
			
			if (buzzer_flag == 0)
				P0 = 0x40;	//on蜂鸣器继电器 0100 0000
			else if (buzzer_flag == 1)
				P0 = 0x00;	//on蜂鸣器继电器 0100 0000
		}
		else
		{
			//buzzer off // 失能能蜂鸣器
			P2 = 0xA0;	// 1010 0000 
			P0 = 0x00;	//off蜂鸣器继电器 0000 0000
		}
	}
}

void Timer0_Rountine(void) interrupt 1
{
	static unsigned int T0Count0;

	T0Count0++;
	if (T0Count0 >= 50)
	{
		// 执行操作
		buzzer_flag = ! buzzer_flag;
		T0Count0 = 0; // 软件复位
	}
}
